Initializing of a memory area

ABSTRACT

A method for initializing a memory area, the method includes: receiving a request to access a first memory sub area of a first memory area that comprises multiple memory sub areas; and initializing the first memory sub area if a first memory area initialization indicator differs from a first memory sub area initialization request indicator; wherein the first memory area initialization request indicator is a multiple bit variable indicative of a time of a last request to initialize the first memory area and the first memory sub area initialization indicator is a multiple bit variable indicative of a time of a request to initialize the first memory area that resulted in a last initialization of the first memory sub area.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/182,045, filed Jul. 29, 2008, and which is herein incorporated byreference.

FIELD OF THE INVENTION

The present invention relates to methods and computer program productsfor initializing a memory area.

BACKGROUND OF THE INVENTION

Storage devices should be initialized before being accessed. Theinitialization process of a large memory area of a storage device islong and can prevent access to the memory area before the initializationprocess is completed.

There is a growing need to allow access to a memory sub area whileanother memory sub area is being initialized.

A well known data recovery method involves generating snapshot copies ofa content of memory areas. The copy process is long and usually involvescopying one memory sub area after the other.

Data corruption can occur when a request to initialize a memory area isreceived during the copying process or even if an initialization of anentire memory area was not completed before the copying process starts.

There is a growing need to provide methods, systems and computer programproducts that enable efficient initialization of memory areas at asnapshot copy supporting environment.

SUMMARY

A method for initializing a memory area, the method comprises receivinga request to access a first memory sub area of a first memory area thatcomprises multiple memory sub areas, and initializing the first memorysub area if a first memory area initialization indicator differs from afirst memory sub area initialization request indicator, wherein thefirst memory area initialization request indicator is a multiple bitvariable indicative of a time of a last request to initialize the firstmemory area and the first memory sub area initialization indicator is amultiple bit variable indicative of a time of a request to initializethe first memory area that resulted in a last initialization of thefirst memory sub area.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be understood and appreciated more fully fromthe following detailed description taken in conjunction with thedrawings in which:

FIG. 1 illustrates a method for initializing a memory area according toan embodiment of the invention;

FIG. 2 illustrates a method for initializing a memory area according toan embodiment of the invention;

FIG. 3 illustrates a method for initializing a memory area according toan embodiment of the invention;

FIG. 4 illustrates a stage of the method for initializing a memory areaof FIG. 3 according to an embodiment of the invention

FIG. 5 illustrates a method for initializing a memory area according toan embodiment of the invention;

FIG. 6 illustrates a method for initializing a memory area according toan embodiment of the invention; and

FIG. 7 illustrates a system for initializing a memory area according toan embodiment of the invention.

DETAILED DESCRIPTION

Multiple processes are provided. These multiple processes can beexecuted at least partially in parallel to each other. A first processincludes receiving requests to initialize a memory area, updating amemory area initialization request indicator and waiting to the nextrequest to initialize the memory area. A second process involvesgradually initializing memory sub areas of that memory area in responseto requests to access these memory sub areas and in response to requeststo initialize the memory area. A third process can involve receiving arequest to generate a copy of the content of the memory area as it wasat a certain point in time and generating such a copy, conveniently at asecond storage unit that differs from a first storage unit that includesthe memory area. It is noted that either one of the first and second canbe executed after the third process starts and after the third processis completed.

The illustrated method, systems and computer program products do notrequire snapshot cascading.

For simplicity of explanation the following figures will refer to afirst memory area to a first memory sub area to a second memory area andto a second memory sub area. The terms ‘first’ and ‘second’ are onlyused to distinguish one memory area (or memory sub area) from another.It is noted that a memory area can be a volume while a memory sub areacan be a track but this is not necessarily so.

FIG. 1 illustrates method 100 for initializing a memory area, accordingto an embodiment of the invention.

For simplicity of explanation this memory area will be referred to as afirst memory area.

Method 100 starts by stages 110 and 130. Stage 110 includes receiving arequest to initialize a first memory area. Stage 110 is followed bystage 120 of updating a first memory area initialization requestindicator that is a multiple bit variable indicative of a time of a lastrequest to initialize the first memory area. Stage 120 is followed bystage 110. The first memory area initialization request indicator canrepresent the serial number (or ‘generation’) of the request.

Stage 130 includes receiving a request to access a first memory sub areaof a first memory area that includes multiple memory sub areas. It isnoted that the first memory sub area can be any memory sub area out ofmultiple memory sub areas that form the first memory area.

Stage 130 is followed by stage 140 of checking if a first memory areainitialization request indicator differs from a first memory sub areainitialization request indicator. The first memory sub areainitialization indicator is a multiple bit variable indicative of a timeof a request to initialize the first memory area that resulted in a lastinitialization of the first memory sub area.

If the answer is negative then stage 140 is followed by stage 160 ofallowing the access to the first memory sub area. Accordingly, thecontent of the first memory sub area (or a portion thereof) can be reador the first memory sub area (or a portion thereof) can be written to.

If the answer is positive then stage 140 is followed by stage 150 ofinitializing the first memory sub area and updating the first memory subarea initialization indicator (it should be equal to the first memoryarea initialization request indicator). Stage 150 is followed by stage160.

The initialization can include writing initialization information to thememory sub areas. The same initialization information can be written todifferent memory sub areas but this is not necessarily so. It can be apredefined sequence of ‘0’ and/or ‘1’. The initialization informationcan be generated by an initialization function. For example—theinitialization information can identify the memory sub area or thememory area.

It is noted that stage 130-160 can be repeated for each memory sub areaof the first memory area.

Method 100 requires an execution of stage 140 whenever the first memorysub area is accessed. In order to reduce the number of iterations ofstage 140 additional metadata can be used. This additional metadata canindicate whether the whole first memory sub area (or a group of memorysub area that include the first memory sub area) was initialized inresponse to the last request to initialize the first memory area. Oncesuch an initialization session is completed there is no need to performthe comparison of stage 140.

A first memory sub area group initialization completion indicator isprovided. It indicates that an entire group of memory sub areas (of thefirst memory area) was already initialized in response to the lastrequest to initialize the first memory area. According to variousembodiments of the invention the first memory area can include one ormore groups. These groups can be of the same size or of different sizes.According to an embodiment of the invention the whole first memory areacan be regarded as a single group of memory sub areas.

FIG. 2 illustrates method 102 for initializing a memory area, accordingto another embodiment of the invention.

Method 102 of FIG. 2 differs from method 100 of FIG. 1 by includingstage 170 of checking whether a whole group of memory sub areas (thatincludes the first memory sub area) was initialized.

Stage 130 is followed by stage 170.

If the whole group of memory sub areas was initialized then stage 170 isfollowed by stage 160.

Else, stage 170 is followed by stage 140, as there is a need to checkwhether the first memory area initialization request indicator differsfrom the first memory sub area initialization request indicator. If theanswer is negative then stage 140 is followed by stage 160, else stage140 is followed by stage 150. Stage 150 is followed by stage 160.

Thus, method 102 includes providing the content of the at least portionof the first memory sub area without comparing the first memory areainitialization request indicator to the first memory sub areainitialization indicator if the memory sub area group initializationcompletion indicator indicates that an entire group of memory sub areasthat includes the first memory sub area was initialized in response tothe last request to initialize the first memory area.

According to various embodiments of the invention the initializationmethod can be applied when a snapshot copy of the content of the firstmemory area are generated. A snapshot copy of a content of the firstmemory area is a copy of that content of the first memory area as it wasat a certain point of time. Typically, the process of generating such acopy is time consuming and there is a need to maintain theinitialization status of memory sub areas during the copying process andafter the copying process is completed. The multiple bit variablesintroduced previously can assist in maintaining the initializationstatus.

FIG. 3 illustrates method 104 of initializing a first memory areaaccording to a further embodiment of the invention.

It is assumed that the first memory area is included in a first storagedevice and that the snapshot copy should be stored at a second memoryarea of a second storage unit.

Method 104 starts by stage 210 of receiving a request to copy a contentof the first memory area as it is at a certain point in time to a secondstorage unit.

Stage 210 is followed by stage 220 of storing the first memory areainitialization request indicator as it is at the certain point in time.

Stage 220 is followed by stage 230. Stage 230 includes the followingstages (that are illustrated in FIG. 4): (i) stage 231 of selecting amemory sub area of the first memory area; (ii) stage 232 of checking ifthe first memory area initialization request indicator as it was at thecertain point in time differs from the memory sub area initializationindicator; (iii) stage 233 of initializing the memory sub area if theanswer is positive to provide an initialized memory sub area; (iv) stage234 (that is preceded by stage 233) of copying the content of theinitialized memory sub area to the second storage unit; (v) stage 235 ofcopying to the second storage unit the content of the memory sub area asit was at the certain point in time if the answer is negative; (vi)stage 236 (preceded by stage 235 and 234) of setting a second memory subarea initialization indicator according to the second memory areaindicator and indicating that the content of the first memory sub areawas already copied; (vii) stage 237 (preceded by stage 236) ofdetermining whether all the memory sub areas of the first memory areawere selected. If the answer is negative another memory sub area isselected during stage 231.

Accordingly, stage 230 includes repeating, for each memory sub area ofthe first memory area the following: (i) checking if the first memoryarea initialization request indicator as it was at the certain point intime differs from the memory sub area initialization indicator; (ii)initializing the memory sub area if the answer is negative (thevariables differ from each other) to provide an initialized memory subarea and copying to the second storage unit the content of theinitialized memory sub area; (iii) copying to the second storage unitthe content of the memory sub area as it was at the certain point intime if the variables equal each other; (iv) setting a memory sub area(of a second memory area of a second storage unit) initializationindicator to equal the first memory sub area initialization indicator asit was at the certain point in time.

While stage 230 is in progress and even after it is completed a requestto read a content of at least a portion of a first memory sub area as itwas at the certain point in time can be received. This is illustrated bystage 250 of receiving a request to read a content of at least a portionof the first memory sub area as it was at the certain point in time.

Stage 250 is followed by stage 260 of checking whether the content ofthe first memory sub area as it was at the certain point in time wasalready copied (resides in the second storage unit) or not (resides inthe first storage unit).

If the answer is positive (first memory sub area of first memory area ofthe first storage unit was copied to a second memory sub area of asecond memory area of a second storage unit) then stage 260 is followedby stage 310, else it is followed by stage 270.

Stage 270 includes checking if the first memory area initializationrequest indicator as it was at the certain point in time differs fromthe first memory sub area initialization indicator.

If the answer is negative then stage 270 is followed by stage 280 ofreading the content of the at least portion of the memory sub area.

If the answer is positive then stage 270 is followed by stage 290 ofinitializing the first memory sub area and updating the first memory subarea initialization indicator (it should be equal to the first memoryarea initialization request indicator). Stage 150 is followed by stage280.

Additionally or alternatively, a request to write at least a portion ofthe content of the first memory sub area can be received while stage 230is in progress or even after it is completed. In this case instead ofreading the content of at least a portion of the first memory sub area(initialized or as it was at the certain point in time) a writeoperation is executed.

Stage 310 includes checking if the second memory area initializationrequest indicator differs from the second memory sub area initializationindicator. The second memory area initialization request indicator is amultiple bit variable indicative of a time of a last request toinitialize the second memory area.

If the answer is negative then stage 310 is followed by stage 330 ofreading the content of the at least portion of the second memory subarea.

If the answer is positive then stage 310 is followed by stage 320 ofinitializing the second memory sub area and updating the second memorysub area initialization indicator (it should be equal to the secondmemory area initialization request indicator). Stage 320 is followed bystage 330.

FIG. 5 illustrates method 106 of initializing a first memory areaaccording to a further embodiment of the invention.

Method 106 of FIG. 5 differs from method 104 of FIG. 3 by includingstage 265. Stage 265 follows stage 260. Stage 265 includes checkingwhether a whole group of memory sub areas (that includes the firstmemory sub area) was initialized. The checking can involve checking amemory sub area group initialization completion indicator.

If the whole group of memory sub areas was initialized then stage 265 isfollowed by stage 280. Else, stage 265 is followed by stage 270, asthere is a need to check whether the first memory area initializationrequest indicator differs from a first memory sub area initializationrequest indicator. If the answer is negative then stage 270 is followedby stage 280, else stage 270 is followed by stage 290. Stage 290 isfollowed by stage 280.

FIG. 6 illustrates method 108 of initializing a first memory areaaccording to a further embodiment of the invention.

Method 108 of FIG. 6 differs from method 106 of FIG. 5 by includingstage 305. Stage 305 follows stage 260. Stage 305 includes checkingwhether a whole group of memory sub areas (that includes the secondmemory sub area) was initialized. This is done by checking the value ofa memory sub area group initialization completion indicator.

If the whole group of memory sub areas was initialized then stage 305 isfollowed by stage 330. Else, stage 305 is followed by stage 310, asthere is a need to check whether the second memory area initializationrequest indicator differs from a second memory sub area initializationrequest indicator. If the answer is negative then stage 310 is followedby stage 330, else stage 310 is followed by stage 320. Stage 320 isfollowed by stage 330.

FIG. 7 illustrates system 400 according to an embodiment of theinvention.

System 400 includes first storage unit 410, second storage unit 420 andcontroller 430. First storage unit 410 can include multiple memory areassuch as first memory area 412. First memory area 412 includes multiplememory sub areas such as first memory sub area 414(1) and additionalmemory sub areas 414(2)-414(K). K being a positive integer that canexceed and even well exceed two. Second storage unit 420 can includemultiple memory areas such as second memory area 422. Second memory area422 includes multiple memory sub areas such as second memory sub area424(1) and additional memory sub areas 424(2)-424(K). K being a positiveinteger that can exceed and even well exceed two. There can be N groupsof memory sub areas per each memory area out of the first and secondmemory areas.

Assuming that first storage unit 410 includes a single storage area thatin turn includes K memory sub areas that are grouped in N groups andthat second storage unit 420 includes a single storage area that in turnincludes K memory sub areas that are grouped in N groups then system 400can store metadata that may includes at least one of the followingvariables: (i) first memory area initialization indicator 440, (ii)memory sub area initialization request indicators 442(1)-442(K) that areassociated with memory sub areas of the first memory area, (iv) firstmemory area initialization request indicator as it is at the certainpoint in time 440′, (v) memory sub area group initialization completionindicators 444(1)-444(N) that are associated with N groups of memory subareas of the first memory area, (vi) second memory area initializationindicator 460, (vii) memory sub area initialization request indicators462(1)-462(K) that are associated with memory sub areas of the secondmemory area, (viii) memory sub area group initialization completionindicators 464(1)-464(N) that are associated with N groups of memory subareas of the second memory area; and (ix) memory sub area copycompletion indicators 470.

It is noted that if each storage unit includes more than a single memoryarea then metadata per each memory area is required.

First memory area initialization indicator 440 and a memory sub areainitialization request indicator out of indicators 442(1)-442(K) can becompared to each other (for example during stage 140 of method 100 orduring stage 270 of method 104) in response to a request to access atleast a portion of that memory sub area.

First memory area initialization request indicator as it is at thecertain point in time 440′ is stored (for example during stage 220 ofmethod 102) in response to a request to create a copy of a content ofthe first memory area as it was at a certain point in time.

Memory sub area group initialization completion indicators 444(1)-444(N)indicate whether each group of memory sub areas (of the first memoryarea) was initialized in response to the last request to initialize thefirst memory area. These indicators can be checked during stage 170 ofmethod 102 or during stage 265 of method 106.

Memory sub area copy completion indicators 470 indicate whether thecontent of each memory sub area (as it was at a certain point in time)was copied from the first storage unit to the second storage unit. Itcan be a bit map. These indicators can be checked during stage 260 ofmethod 104.

Second memory area initialization indicator 460 and a memory sub areainitialization request indicator out of indicators 462(1)-462(K) can becompared to each other (for example during stage 310 of method 104) inresponse to a request to access at least a portion of that memory subarea.

Memory sub area group initialization completion indicators 464(1)-464(N)indicate whether each group of memory sub areas (of the second memoryarea) was initialized in response to the last request to initialize thesecond memory area. These indicators can be checked during stage 305 ofmethod 106.

It is noted that these variables can be stored in different manners andin different locations. For example, memory sub area initializationrequest indicators 442(1)-442(K) can be stored in the memory sub areasor in a different location.

Furthermore, the invention can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer readable medium can be any apparatus thatcan contain, store, communicate, propagate, or transport the program foruse by or in connection with the instruction execution system,apparatus, or device.

The medium can be an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system (or apparatus or device) or apropagation medium. Examples of a computer-readable medium include asemiconductor or solid-state memory, magnetic tape, a removable computerdiskette, a random access memory (RAM), a read-only memory (ROM), arigid magnetic disk and an optical disk. Current examples of opticaldisks include compact disk—read only memory (CD-ROM), compactdisk—read/write (CD-R/W) and DVD.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modem and Ethernet cards are just a few of thecurrently available types of network adapters.

Variations, modifications, and other implementations of what isdescribed herein will occur to those of ordinary skill in the artwithout departing from the spirit and the scope of the invention asclaimed.

Accordingly, the invention is to be defined not by the precedingillustrative description but instead by the spirit and scope of thefollowing claims.

1. A method for initializing a memory area, the method comprising: receiving a request to access a first memory sub area of a first memory area that comprises multiple memory sub areas; and initializing the first memory sub area if a first time of a last request to initialize the first memory area or a first indicator indicative thereof differs from a second time of a request to initialize the first memory area that resulted in a last initialization of the first memory sub area or second indicator indicative of the second time.
 2. The method according to claim 1 comprising: receiving a request to read a content of at least a portion of the first memory sub area; and providing the content of the at least portion of the first memory sub area without comparing the times or indicators if a memory sub area group initialization completion indicator indicates that an entire group of memory sub areas that comprises the first memory sub area was initialized in response to the last request to initialize the first memory area.
 3. The method according to claim 1 comprising receiving a request to copy a content of the first memory area, as it is at a certain point in time, to a second storage unit and storing the first indicator as it is at the certain point in time; wherein the second storage unit differs from a first storage unit that comprises the first memory area.
 4. The method according to claim 3 comprising: receiving, before copying the content of the first memory sub area as it was at the certain point of time to a second memory sub area of the second storage unit, a request to read a content of at least a portion of the first memory sub area as it was at the certain point in tune; and initializing the first memory sub area to provide an initialized first memory sub area if the first indicator as it was at the certain point in time differs from the second indicator.
 5. The method according to claim 3 comprising: receiving, before copying the content of the first memory sub area as it was at the certain point of time to a second memory sub area of the second storage unit, a request to read a content of at least a portion of the first memory sub area; and providing the content of the at least portion of the first memory sub area without comparing the first time or indicator to the second time or indicator if a memory sub area group initialization completion indicator indicates that an entire group of memory sub areas that comprises the first memory sub area was initialized in response to the last request to initialize the first memory area.
 6. The method according to claim 3 comprising: copying the content of the first memory sub area as it was at the certain point of time to a second memory sub area of the second storage unit; and setting a second memory sub area initialization indicator according to the second memory area indicator and indicating that the content of the first memory sub area was already copied.
 7. The method according to claim 6 comprising: receiving, after copying the content of the first memory sub area as it was at the certain point of time to the second memory sub area of the second storage unit, a request to read a content of at least a portion of the first memory sub area as it was at the certain point in time; and initializing the second memory sub area if a second memory area initialization request indicator differs from the second memory sub area initialization indicator; wherein the second memory area initialization request indicator is indicative of a time of a last request to initialize the second memory area.
 8. The method according to claim 3 comprising: receiving, before copying the content of the first memory sub area as it was at the certain point of time to a second memory sub area of the second storage unit, a request to read a content of at the second memory sub area; and initializing the first memory sub area to provide an initialized first memory sub area if the first indicator as it was at the certain point in time differs from the second indicator.
 9. The method according to claim 3 comprising: receiving, before copying the content of the first memory sub area as it was at the certain point of time to a second memory sub area of the second storage unit, a request to read a content of at least a portion of the first memory sub area as it was at the certain point in time; and copying the content of the first memory sub area to a snapshot target and initializing the first memory sub area to provide an initialized first memory sub area if the first indicator as it was at the certain point in time differs from the second indicator.
 10. A computer program product comprising a non-transitory computer-readable medium including a computer readable program, wherein the computer readable program when executed on a computer causes the computer to: receive a request to access a first memory sub area of a first memory area that comprises multiple memory sub areas; and initialize the first memory sub area if a first time of a last request to initialize the first memory area or a first indicator indicative thereof differs from a second time of a request to initialize the first memory area that resulted in a last initialization of the first memory sub area or second indicator indicative of the second time.
 11. The computer program product according to claim 10 that causes the computer to: receive a request to read a content of at least a portion of the first memory sub area; and provide the content of the at least portion of the first memory sub area without comparing the tunes or indicators if a memory sub area group initialization completion indicator indicates that an entire group of memory sub areas that comprises the first memory sub area was initialized in response to the last request to initialize the first memory area.
 12. The computer program product according to claim 10 wherein the computer program product causes the computer to receive a request to copy a content of the first memory area as it is at a certain point in time to a second storage unit and storing the first indicator as it is at the certain point in time; wherein the second storage unit differs from a first storage unit that comprises the first memory area.
 13. The computer program product according to claim 12 wherein the computer program product causes the computer to: receive, before copying the content of the first memory sub area as it was at the certain point of time to a second memory sub area of the second storage unit, a request to read a content of at least a portion of the first memory sub area as it was at the certain point in time; and initialize the first memory sub area to provide an initialized first memory sub area if the first indicator as it was at the certain point in time differs from the second indicator.
 14. The computer program product according to claim 12 wherein the computer program product causes the computer to: receive, before copying the content of the first memory sub area as it was at the certain point of time to a second memory sub area of the second storage unit, a request to read a content of at least a portion of the first memory sub area; and provide the content of the at least portion of the first memory sub area without comparing the first time or indicator to the second time or indicator if a memory sub area group initialization completion indicator indicates that an entire group of memory sub areas that comprises the first memory sub area was initialized in response to the last request to initialize the first memory area.
 15. The computer program product according to claim 12 wherein the computer program product causes the computer to copy the content of the first memory sub area as it was at the certain point of time to a second memory sub area of the second storage unit and set a second memory sub area initialization indicator to equal the first memory sub area initialization indicator as it was at the certain point in time.
 16. The computer program product according to claim 15 wherein the computer program product causes the computer to: receive, after copying the content of the first memory sub area as it was at the certain point of time to the second memory sub area of the second storage unit, a request to read a content of at least a portion of the first memory sub area as it was at the certain point in time; and initialize the second memory sub area if a second memory area initialization request indicator differs from the second memory sub area initialization indicator; wherein the second memory area initialization request indicator is indicative of a time of a last request to initialize the second memory area.
 17. A system comprising: a first storage device; and a memory controller; wherein the controller is adapted to: receive a request to access a first memory sub area of a first memory area of a storage unit that comprises multiple memory sub areas; and initialize the first memory sub area if a first time of a last request to initialize the first memory area or a first indicator indicative thereof differs from a second time of a request to initialize the first memory area that resulted in a last initialization of the first memory sub area or second indicator indicative of the second time.
 18. The system according to claim 17 wherein the controller is adapted to: receive a request to read a content of at least a portion of the first memory sub area; and control a provision of the content of the at least portion of the first memory sub area without comparing the times or indicators if a memory sub area group initialization completion indicator indicates that an entire group of memory sub areas that comprises the first memory sub area was initialized in response to the last request to initialize the first memory area.
 19. The system according to claim 17 wherein the controller is adapted to receive a request to copy a content of the first memory area as it is at a certain point in time to a second storage unit and control a storage of the first indicator as it is at the certain point in time.
 20. The system according to claim 17 wherein the controller is adapted to: receive, before the content of the first memory sub area as it was at the certain point of time is copied to a second memory sub area of the second storage unit, a request to read a content of at least a portion of the first memory sub area; and control a provision of the content of the at least portion of the first memory sub area without comparing the times or indicators if a memory sub area group initialization completion indicator indicates that an entire group of memory sub areas that comprises the first memory sub area was initialized in response to the last request to initialize the first memory area. 